package com.jzh.eurekaconsumerfeign.service;

import feign.codec.Encoder;
import feign.form.spring.SpringFormEncoder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.Scope;

@Configuration
public class FeignMultipartSupportConfig {
    /**
     * 针对单文件上传
     * @return
     */
    /*@Bean
    @Primary
    @Scope("prototype")
    public Encoder multipartFormEncoder() {
        return new SpringFormEncoder();
    }*/

    /**
     * 针对多文件上传
     * @return
     */
    @Bean
    @Primary
    @Scope("prototype")
    public Encoder multipartFormEncoder() {
        return new FeignSpringFormEncoder();
    }

    /**
     * spring cloud netfix组件中，feign相关的日志默认是不会输出的。
     * Logger.Level用于通知Feign进行记录的log的详细程度
     * NONE, 不记录 (DEFAULT).
     * BASIC, 仅记录请求方式和URL及响应的状态代码与执行时间.
     * HEADERS, 日志的基本信息与请求及响应的头.
     * FULL, 记录请求与响应的头和正文及元数据
     */
    @Bean
    public feign.Logger.Level multipartLoggerLevel() {
        return feign.Logger.Level.FULL;
    }
}
